home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / ien / ien-32 < prev    next >
Text File  |  1988-12-01  |  53KB  |  2,350 lines

  1.  
  2.  
  3.  
  4. IEN 32
  5. Section 2.3.3.12
  6.  
  7. Title: Catenet Monitoring and Control: A Model for the Gateway Component
  8.  
  9. Author: John Davidson  [Davidson@BBNE]
  10.  
  11. Note: This document contains figures which are not included in this on line
  12. version, the figures may be obtained in hardcopy from the author.
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.                  CATENET MONITORING AND CONTROL:
  44.  
  45.                 A MODEL FOR THE GATEWAY COMPONENT
  46.  
  47.                           John Davidson
  48.  
  49.                   Bolt Beranek and Newman, Inc.
  50.  
  51.                              IEN #32
  52.  
  53.                Internet Notebook Section 2.3.3.12
  54.  
  55.                          April 28, 1978
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.                  Catenet Monitoring and Control:
  63.  
  64.                 A Model for the Gateway Component
  65.  
  66.  
  67.  
  68.  
  69.  
  70. 1.  INTRODUCTION
  71.  
  72.  
  73.      At the last Internet meeting,  some  concern  was  expressed
  74.  
  75. that  we don't have a real "model" for what a gateway is, what it
  76.  
  77. does, and how it does it, and that without such  a  model  it  is
  78.  
  79. somewhat  dificult  to  describe  the  kinds  of activities which
  80.  
  81. should be monitored or controlled by  a  Gateway  Monitoring  and
  82.  
  83. Control  Center  (GMCC).   To  respond  to  that concern, we have
  84.  
  85. written this note to express our recent thoughts about a  gateway
  86.  
  87. model.  Although the note centers primarily around the topic of a
  88.  
  89. gateway  model,  we  have  also  included  a  few  thoughts about
  90.  
  91. possible  models  for  the  other   components   of   a   general
  92.  
  93. internetwork structure.
  94.  
  95.      The  note  proceeds  as  follows.   In  Section  2 we try to
  96.  
  97. establish a reason for wanting a model of  a  given  internetwork
  98.  
  99. component, and present a brief overview of the potential benefits
  100.  
  101. of   Monitoring   and  Control.   This  presentation  is  largely
  102.  
  103. pedagogical since it is assumed that this document  will,  for  a
  104.  
  105. while  at least, be the only introduction to the topic available.
  106.  
  107.      In Section 3 we discuss the fundamental kinds of  activities
  108.  
  109. which  must  be  performed  by any internet component if it is to
  110.  
  111. participate in Monitoring and Control.  This section  establishes
  112.  
  113. motivation  for  some  of the mechanisms discussed in the rest of
  114.  
  115. the paper.
  116.  
  117.                               - 1 -
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.      In Section 4 we discuss the roles  which  the  hosts,  local
  125.  
  126. Packet  Switching Networks (PSNs), and the Gateway Monitoring and
  127.  
  128. Control Centers (GMCCs)  may  have  to  play  in  Monitoring  and
  129.  
  130. Control for the internet.
  131.  
  132.      Then,  in  Section  5,  we  finally  begin  to  discuss  the
  133.  
  134. principle  characteristics  of  a  possible  gateway  model.   We
  135.  
  136. examine first a list of practical constraints which influence the
  137.  
  138. way  in  which  the  model  is being designed, and then, suitably
  139.  
  140. constrained, we begin the task of developing the model itself.  A
  141.  
  142. complete modelling has not yet been performed, and is  likely  to
  143.  
  144. take  quite  a  while  to  complete.  Section 5, however, gives a
  145.  
  146. suitable indication of  the  way  in  which  the  model  will  be
  147.  
  148. developed,  and  of  the alternative interpretations available to
  149.  
  150. gateway designers who pattern  their  implementations  after  the
  151.  
  152. model.
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.                               - 2 -
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186. 2.  CONTEXT F OR MODELING
  187.  
  188.      It  is  assumed  that  gateways  exist to make communication
  189.  
  190. possible between hosts on different packet switching networks. In
  191.  
  192. this regard, they actually serve to make a single network out  of
  193.  
  194. several diverse, disjoint networks.  Thus gateways can be said to
  195.  
  196. form  the  nodes  of  a  super-network,  called  a Catenet, whose
  197.  
  198. "links" are the individual packet switching networks,  and  whose
  199.  
  200. "hosts"  are simply the individual hosts of the constituent PSNs.
  201.  
  202. As the nodes of this super-net, the gateways will be  responsible
  203.  
  204. in  part  or in whole for tasks like routing, fragmentation, flow
  205.  
  206. control,   reassembly,   retransmission,   and    perhaps    data
  207.  
  208. transformation  (e.g. encryption/decryption), access control, and
  209.  
  210. even authentication.
  211.  
  212.      We can assume that there are benefits  to  be  derived  from
  213.  
  214. having  the  Catenet  operate in a coordinated fashion.  However,
  215.  
  216. coordination is not achieved by default, because the  Catenet  is
  217.  
  218. being  constructed  in  pieces, with each piece potentially under
  219.  
  220. the control of a distinct administrator, each gateway implemented
  221.  
  222. in a unique processor, and each program conforming to a different
  223.  
  224. programmer's view of the workings of a gateway.
  225.  
  226.  
  227.      The  Internetworking  group  brought  together  by  ARPA  is
  228.  
  229. serving as the coordinating authority for the development of many
  230.  
  231. of  the  components  of  the  Catenet.   To  make  the  important
  232.  
  233. administrative and technical decisions  associated  with  Catenet
  234.  
  235. construction, however, this group must be provided with technical
  236.  
  237. inputs.   Many of these inputs can come from theoretical studies,
  238.  
  239.  
  240.  
  241.                               - 3 -
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248. protocol  investigations,   and   pre-construction   experiments,
  249.  
  250. modeling,  and  simulation  during  Catenet development.  But the
  251.  
  252. most important source of technical inputs will ultimately be  the
  253.  
  254. Catenet  itself.   If the true operational characteristics of the
  255.  
  256. net  can  be  readily  (and  continually)  determined,  then  the
  257.  
  258. administrative   issues   associated   with  Catenet  performance
  259.  
  260. (questions like "why is the throughput not as  predicted",  "what
  261.  
  262. components  are  proving unreliable", "should the net be expanded
  263.  
  264. or reconfigured", etc) can be adequately resolved  by  appeal  to
  265.  
  266. the  recorded  statistics;   collection  and  recording  of these
  267.  
  268. operational statistics form a part of what we refer to as Catenet
  269.  
  270. "Monitoring".  Also, since the  Catenet  will  sometimes  be  the
  271.  
  272. "target"  of  the  Internet  group or ARPA administrative policy,
  273.  
  274. then, insofar as policy affects the operation of  the  net  (e.g.
  275.  
  276. such  "policy"  decisions as "failed components should be dumped,
  277.  
  278. reloaded, and restarted ASAP"), technical tools must be  provided
  279.  
  280. which  help  implement  the  policy;  these kinds of tools form a
  281.  
  282. part of what we refer to as Catenet "Control".  (Some readers may
  283.  
  284. prefer to think of this as "Coordination" rather  than  "Control"
  285.  
  286. which unfortunately may carry other undesirable connotations.)
  287.  
  288.      In  order to be able to Monitor and Control the operation of
  289.  
  290. the Catenet in accordance  with  administrative  policy,  in  the
  291.  
  292. presence of the diverse component implementations, some model for
  293.  
  294. the  network  as a whole should be developed.  Futher, models for
  295.  
  296. each of the component types  (gateways,  packet  switching  nets,
  297.  
  298. hosts)  should  be developed.  These model implementations should
  299.  
  300. then  be  instrumented  in  a  way  that  makes  it  possible  to
  301.  
  302.  
  303.                               - 4 -
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310. accumulate  the  technical  inputs  and to effect the operational
  311.  
  312. policy  desired  by  Catenet  administrators.    If   the   model
  313.  
  314. implementations  are appropriately general, then it is reasonable
  315.  
  316. to dictate that individual implementations adhere to these  basic
  317.  
  318. models.
  319.  
  320.  
  321.      BBN is currently pursuing the development of a model for the
  322.  
  323. gateway  component  of the Catenet.  In particular, we are trying
  324.  
  325. to define how the model should be  instrumented  to  provide  the
  326.  
  327. appropriate  kinds  of Monitoring and Control capabilities.  Most
  328.  
  329. of the capabilities we think are needed are similar  in  function
  330.  
  331. to  the  capabilities  already  developed for the ARPANET and its
  332.  
  333. Network Control Center, NCC.  We are proposing, and in fact  have
  334.  
  335. actually  begun,  the  construction  of  a Gateway Monitoring and
  336.  
  337. Control Center (GMCC) patterned  after  the  NCC  (and  currently
  338.  
  339. sharing resources with it, since the NCC is already accessible to
  340.  
  341. internetwork  traffic  and since the scope of the current GMCC is
  342.  
  343. at this time quite modest).
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.                               - 5 -
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372. 3.  FUNDAMENTALS OF MONITORING AND CONTROL
  373.  
  374.      We assert that all of  the   Catenet  components  should  be
  375.  
  376. properly instrumented in software (and if necessary, in hardware)
  377.  
  378. to measure the service which the Catenet as a whole provides, and
  379.  
  380. to  enhance  the  maintainability  of  the  net  as a whole.  The
  381.  
  382. instrumentation  should  provide  us  with  all  the   mechanisms
  383.  
  384. required to perform
  385.  
  386.  
  387.           Performance Monitoring
  388.  
  389.  
  390.           Event Recording
  391.  
  392.  
  393.           Functional Testing
  394.  
  395.  
  396.           Component Maintenance
  397.  
  398.  
  399.  
  400. Here,  by  Performance  Monitoring,  we intend that the status of           _______________________
  401.  
  402. Catenet  components  (both   the   binary   "working/not-working"
  403.  
  404. indication  and the status of internal operational components) be
  405.  
  406. made available to the GMCC.  This will require that  the  Catenet
  407.  
  408. components  have  a  mechanism  for communicating periodic status
  409.  
  410. reports and instantaneous error reports "back" to the GMCC.  This
  411.  
  412. mechanism may or may  not  require  that  the  reports  from  the
  413.  
  414. various  net  components  be  synchronized in order to enable the
  415.  
  416. GMCC to obtain a  "snapshot"  of  the  network  as  a  whole;  if
  417.  
  418. synchronization  is  required,  a synchronizing mechanism will be
  419.  
  420. required as well.  It is also undetermined  whether  a  protected
  421.  
  422. path (e.g. one using encryption to prevent spoofing)  is required
  423.  
  424. for communicating this information through the Catenet.
  425.  
  426.  
  427.                               - 6 -
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.      There  should  also  be  a  mechanism  by which the GMCC can
  435.  
  436. request performance data from a Catenet component in the case  of
  437.  
  438. non-recurring  measurements.   The  set  of monitoring mechanisms
  439.  
  440. installed in any particular component may  differ  from  the  set
  441.  
  442. installed in any other component, depending on the granularity of
  443.  
  444. measurement which is desired in each case.
  445.  
  446.      By  Event Recording, we intend that the raw statistical data         _______________
  447.  
  448. on, say, the number of messages  or  packets  passing  through  a
  449.  
  450. given  component be made available to the GMCC in a standard way.
  451.  
  452. Not only must there be a standard way  of  collecting  the  event
  453.  
  454. statistics,  but  there  must  also  be  a  way  for a designated
  455.  
  456. authority like the GMCC to reset the event counters, say, or turn
  457.  
  458. on or off the event recording mechanisms. We shall have  more  to
  459.  
  460. say on what events are significant in a subsequent section.
  461.  
  462.      By  Functional  Testing  we  intend that the GMCC be able to         ___________________
  463.  
  464. direct the activities of the Catenet components  either  directly
  465.  
  466. (by  commanding performance of some task like message generation)
  467.  
  468. or indirectly (by sending, or directing other components to send,
  469.  
  470. messages  through  a  given  component)  in  order  to   exercise
  471.  
  472. component  mechanisms  for  error  analysis  or  load testing.  A
  473.  
  474. useful mechanism in the ARPANET is the ability to isolate  failed
  475.  
  476. hardware  components by forcing a loopback under software control
  477.  
  478. at each of the component boundaries.  The analogue of this scheme
  479.  
  480. in the Catenet is probably  simpler,  since  the  boundaries  are
  481.  
  482. logically  in  software  (e.g.  in  the gateway software in cases
  483.  
  484. where a local PSN or another nearby gateway is being  tested)  or
  485.  
  486. associated  with the local PSN which may have reasonably flexible
  487.  
  488.  
  489.                               - 7 -
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496. control of the interface which connects it to a network  host  or
  497.  
  498. to  a  gateway.  Looping performed within a component should also
  499.  
  500. be possible.
  501.  
  502.      To make use of these testing facilities, we need the ability
  503.  
  504. to generate artificial traffic (and to discard it) and to reflect
  505.  
  506. it (or turn it  around)  as  required.   Reflecting  messages  at
  507.  
  508. gateways  can,  for  example, give a measure of the throughput of
  509.  
  510. Catenet links.
  511.  
  512.  
  513.      By Component Maintenance, we intend that the GMCC  have  the        _____________________
  514.  
  515. ability to coordinate, and in some cases perform, the analysis of
  516.  
  517. failure   for   failed  components,  the  restoration  of  failed
  518.  
  519. components,  the  institution   of   program   fixes,   and   the
  520.  
  521. distribution  of  new  releases.   It is not clear that Component
  522.  
  523. Maintenance can be the responsibility of just a single  GMCC,  of
  524.  
  525. course,  but  if  it is to be the responsibility of any GMCC-like
  526.  
  527. component, then the mechanisms by which the failed  component  is
  528.  
  529. to  be  handled,  and  how  it is to be of use in the maintenance
  530.  
  531. activity, should be adequately modelled  for  each  component  in
  532.  
  533. question.    In   this  regard,  we  see  a  potential  need  for
  534.  
  535. incorporating mechanisms for  self  diagnosis  in  the  component
  536.  
  537. models,  for  enabling  the  GMCC  (or some other network host in
  538.  
  539. conjunction with or in place of  the  GMCC)  to  read  and  write
  540.  
  541. arbitrary locations in a component's memory, etc.
  542.  
  543.      Note  too  that  the  gateway  programs  will be provided by
  544.  
  545. various implementers.  These implementers may in  some  cases  be
  546.  
  547. willing  to  allow a given GMCC to handle reloads and restarts of
  548.  
  549.  
  550.  
  551.                               - 8 -
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558. their component when it fails.  Both the implementer and the GMCC
  559.  
  560. staff may have to be involved in debugging the component  if  the
  561.  
  562. gateway's  model  debugging facility (which presumes the use of a
  563.  
  564. GMCC) is all the original implementers have for  accessing  their
  565.  
  566. component  remotely.   It  might  prove useful for the GMCC to be
  567.  
  568. able to copy the contents of a failed component into a  file  for
  569.  
  570. later  inspection  by  the original implementers in case they are
  571.  
  572. unavailable to copy  the  contents  themselves  at  the  time  of
  573.  
  574. malfunction.
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.                               - 9 -
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620. 4.  MODELS FOR THE PRINCIPLE CATENET COMPONENTS
  621.  
  622.  
  623.      This  note is principally about gateway modelling.  However,
  624.  
  625. we  have  asserted  throughout,  the  need  to  model  the  other
  626.  
  627. components  of  the  general  Catenet as well, so that we can use
  628.  
  629. them in Monitoring and Control applications where they are needed
  630.  
  631. and where they can be useful.  Here we describe briefly the goals
  632.  
  633. we have for modelling the other components.
  634.  
  635.  
  636. 4.1  The GMCC
  637.  
  638.      The functions of a GMCC should be able to  be  performed  by
  639.  
  640. any  host  in  the  composite net.  In view of this, a high level
  641.  
  642. description, or model, of the  way  a  GMCC  operates  should  be
  643.  
  644. created.  Both the GMCC program(s) and its data base(s) should be
  645.  
  646. described  in  a  way which allows Catenet users to reproduce the
  647.  
  648. GMCC functions  (this  basically  requires  coding  of  the  GMCC
  649.  
  650. programs  in  a  high  order  language)  and  to  interrogate  or
  651.  
  652. duplicate the accumulated data base(s) as required for their  own
  653.  
  654. special purposes.
  655.  
  656.      Because  each  gateway,  host, or local PSN component of the
  657.  
  658. composite Catenet is  potentially  the  property  of  a  distinct
  659.  
  660. administrative  authority,  it  is  conceivable  that  each might
  661.  
  662. actually be monitored or controlled by  a  distinct  GMCC.   This
  663.  
  664. would  not  necessarily  be  the best arrangement for purposes of
  665.  
  666. overall net maintainability, but nonetheless must be allowed for.
  667.  
  668. What is more likely, however, is that a given administrator  will
  669.  
  670. give  permission  to  some  approved  Catenet GMCC to perform the
  671.  
  672. Monitoring and Control  activities  associated  with  Performance
  673.  
  674.  
  675.                              - 10 -
  676.  
  677.  
  678.  
  679.  
  680.  
  681.  
  682. Monitoring,  say, or with Event Recording, but reserve for itself
  683.  
  684. the ability to perform the activities associated with  Functional
  685.  
  686. Testing   and   Component   Maintenance.    In   this  case,  the
  687.  
  688. Administrator's host will have  to  understand  and  be  able  to
  689.  
  690. duplicate  the  model  GMCC  functions, and the Catenet component
  691.  
  692. will have to know to respond to one or the other  GMCC  depending
  693.  
  694. on  the  function  being  requested.  Since different authorities
  695.  
  696. might exist for each different function, this  capability  should
  697.  
  698. be  modelled.  Further,  the  mechanism  for changing the name or
  699.  
  700. address of the various  designated  authorities  should  also  be
  701.  
  702. modelled.   Then  the  fact that each Catenet component knows the
  703.  
  704. name of the authority designated  to  perform  a  given  function
  705.  
  706. makes  it possible to restrict arbitrary hosts from abusing their
  707.  
  708. ability to emulate a GMCC.
  709.  
  710.  
  711. 4.2  The Hosts
  712.  
  713.  
  714.      Members of the ARPANET NCC staff have asserted that  "a  key
  715.  
  716. factor  in  network  maintainability is the centralization of the
  717.  
  718. responsibility  for  providing  adequate  user  service.    Since
  719.  
  720. service   is   best  defined  at  the  man/machine  interface,  a
  721.  
  722. significant gain in maintainability would come about if the  user
  723.  
  724. interface  were  completely  at  the  man/machine  boundary.   By
  725.  
  726. including a host within the sphere of responsibility  of  network
  727.  
  728. maintenance,  there could be more uniform and speedier resolution
  729.  
  730. of problems within that host.  Since the  network  design  allows
  731.  
  732. for  dissimilar  node programs, not much additional complexity is
  733.  
  734. required to maintain a set of dissimilar service  hosts.   (Thus)
  735.  
  736.  
  737.                              - 11 -
  738.  
  739.  
  740.  
  741.  
  742.  
  743.  
  744. the  scope  of  the  network should be expanded to providing user
  745.  
  746. services with corresponding benefits for both unified design  and
  747.  
  748. maintainability."
  749.  
  750.      This  may be an extreme position, and may not actually be as
  751.  
  752. easy as anticipated by the NCC staff, but nevertheless  it  is  a
  753.  
  754. position  which has at least some validity, especially in view of
  755.  
  756. the fact that gateways are themselves just hosts, and much of the
  757.  
  758. modelling performed for gateways can thus  be  applied  to  other
  759.  
  760. general purpose hosts.
  761.  
  762.      Consider  what  Monitoring  and Control might be possible if
  763.  
  764. some small component of the host's network software, such as  the
  765.  
  766. TCP  program,  were instrumented to allow Performance Monitoring,
  767.  
  768. Event  Recording,  etc.   under   control   of   a   GMCC.    The
  769.  
  770. instrumentation  would  simply provide that the TCP keep track of
  771.  
  772. its events of interest and arrange for them to be made  available
  773.  
  774. in  a  convenient way to some other protocol module (perhaps) for
  775.  
  776. transmission to the GMCC.  In addition, if there is to be Control
  777.  
  778. of a TCP, some internal means should be provided for a process to
  779.  
  780. direct certain actions of the TCP (for example the  resetting  of
  781.  
  782. accounting statistics).
  783.  
  784.      Certain other capabilities might also prove useful.  The TCP
  785.  
  786. should  be  able  to report to the GMCC any errors it observes in
  787.  
  788. packet formats, packet delivery, etc. so that host personnel with
  789.  
  790. a reliable TCP implementation need not be concerned  about  error
  791.  
  792. analysis  for  newly  added,  undebugged hosts, say.  The GMCC is
  793.  
  794. certainly in the appropriate position to  be  able  to  correlate
  795.  
  796. abnormal  TCP  interactions with Catenet component outages and be
  797.  
  798.  
  799.                              - 12 -
  800.  
  801.  
  802.  
  803.  
  804.  
  805.  
  806. able to explain the abnormal behavior to the host via messages to
  807.  
  808. the TCP.  The TCP should be able  to  be  instructed  to  discard
  809.  
  810. certain messages or to echo them back to their source.  It should
  811.  
  812. perhaps  be  able to timestamp and trace various messages.  These
  813.  
  814. kinds of activities would all be possible  given  an  appropriate
  815.  
  816. and  uniform  instrumentation of the various TCP implementations.
  817.  
  818.  
  819. 4.3  The PSNs
  820.  
  821.  
  822.      The links of the Catenet are the local PSNs.   Unlike  usual
  823.  
  824. network  links,  these  links  are  equipped  with  a  processing
  825.  
  826. capability in the form of their own node computers or  their  own
  827.  
  828. NCC  hosts, etc.  Whatever form this processing capability takes,
  829.  
  830. it can presumably be  made  to  communicate  with  other  Catenet
  831.  
  832. components   using   the   protocols  for  GMCC-to-component  and
  833.  
  834. component-to-GMCC communication.  The local PSNs should  be  able
  835.  
  836. to  report  errors  in interfacing which occur at the PSN/gateway
  837.  
  838. interface; they can also report gateway ups  and  downs  as  they
  839.  
  840. observe them; they might be instrumented to assist in tracing and
  841.  
  842. looping  of  messages  sent  to or through them;  they could keep
  843.  
  844. track of the length of gateway outages;  and since the PSN is the
  845.  
  846. only component with hardware (in most cases) connections  to  the
  847.  
  848. gateway  and  host components, it can perhaps help in the restart
  849.  
  850. or reload of these components.  The techniques for performing any
  851.  
  852. of these activities should be carefully and completely  modelled.
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.                              - 13 -
  862.  
  863.  
  864.  
  865.  
  866.  
  867.  
  868. 5.  A MODEL FOR THE GATEWAY COMPONENT
  869.  
  870.  
  871.      The  principle thing we expect a gateway to do is to perform
  872.  
  873. message routing; a suggested routing mechanism  is  presented  in
  874.  
  875. IEN  No.  30, "Gateway Routing: An Implementation Specification",
  876.  
  877. by  Strazisar  and  Perlman.   Beyond  this,  there  are  several
  878.  
  879. secondary  activities  in which the gateway must play a role, and
  880.  
  881. the large majority of these can be clustered  under  the  general
  882.  
  883. heading  of  Monitoring and Control.  These are the activities we
  884.  
  885. are most concerned with here.  As discussed earlier, the  gateway
  886.  
  887. component,  like  any  other component, should be instrumented to
  888.  
  889. include mechanisms which allow it to cooperate  with  a  GMCC  in
  890.  
  891. providing  Performance  Monitoring,  Event  Recording, Functional
  892.  
  893. Testing, and Component (i.e. gateway)  Maintenance.   It  is  the
  894.  
  895. role of the model to identify the mechanisms which should be used
  896.  
  897. within the gateway to provide these various functions.
  898.  
  899.  
  900. 5.1  Considerations Affecting the Design
  901.  
  902.  
  903.      The  intent of this section is to give some insight into the
  904.  
  905. process by which the model for  the  gateway  component  will  be
  906.  
  907. developed.   There  are  a  number  of fundamental considerations
  908.  
  909. which should be stated beforehand because of their impact on  the
  910.  
  911. way we want to think of gateways as an entity and thus on the way
  912.  
  913. we think of the necessarily composed.  The first of these is that
  914.  
  915. a gateway should be considered to have a net-independent part and
  916.  
  917. one or more net-dependent parts.  The net-independent part should
  918.  
  919. be  considered  the  heart  of the gateway -- the place where the
  920.  
  921.  
  922.  
  923.                              - 14 -
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930. common functions of routing, flow  control,  etc.   are  actually
  931.  
  932. performed; this part is hopefully divorced from considerations of
  933.  
  934. the networks to which the gateway is attached.  The net-dependent
  935.  
  936. parts  on the other hand may all be different, since the networks
  937.  
  938. in most cases will be different, but each should  have  the  same
  939.  
  940. eessential  structure:  there will be modules which gate messages
  941.  
  942. to and from the attached net, and modules which append or  remove
  943.  
  944. local headers to or from internet (and other) messages, etc.  One
  945.  
  946. of  the challenges for the model designer and gateway implementer
  947.  
  948. is to carefully design the boundary between the net-dependent and
  949.  
  950. net-independent functions.
  951.  
  952.  
  953.  
  954.      The gateway model should be able to  accommodate  more  than
  955.  
  956. one   type   of  gateway  implementation.   That  is,  it  should
  957.  
  958. accurately describe or apply to implementations such as:
  959.  
  960.    - the  conventional  gateway.   This  is  a  single  processor
  961.      performing  gateway functions only and connected to only two
  962.      nets.
  963.  
  964.    - a two- or multi-processor gateway.  This  is  a  distributed
  965.      implementation  of  the  gateway, such as the "half-gateway"
  966.      model once considered; the mechanisms used by  the  separate
  967.      processors  to communicate with each other should not affect
  968.      the model design.
  969.  
  970.    - gateways within general purpose host  processors  where  the
  971.      gateway  program is just one of several that may want access
  972.      to the network.
  973.  
  974.    - gateways connected to three or more networks.
  975.  
  976.    - gateways  using  only  a  single  net  interface.   Such  an
  977.      arrangement  might  result  if, for example, a single medium
  978.      were used by two different nets.  readdressing, say, ....
  979.  
  980.    - both  big  and  small  (in  terms  of  power,  size,   cost,
  981.      capability) gateways (including very simple - perhaps purely
  982.      hardware - implementations).
  983.  
  984.  
  985.                              - 15 -
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.    - existing ARPANET gateways.
  993.  
  994.    - existing othernet (sic) gateways.
  995.  
  996.    - the gateway module which sits between a host TCP,  say,  and
  997.      the  network,  and  whose  job it is to select a destination
  998.      gateway consistent with the destination host.
  999.  
  1000.    - a gateway with two or more interfaces to a  single  network.
  1001.  
  1002.    - a gateway which is (either always or sometimes) unwilling or
  1003.      unable  to  participate in Monitoring and Control exercises.
  1004.  
  1005.    - gateways  which  are  responsible  for  access  control   or
  1006.      authentication.   The  need  for these special functions may
  1007.      impact the form of certain mechanisms proposed  for  use  in
  1008.      the model implementation.
  1009.  
  1010.    - gateways which need to perform fragmentation  or  reassembly
  1011.      of  encrypted  data  messages,  or  which need to be able to
  1012.      understand special packet  formats  associated  with  secure
  1013.      data transmissions.
  1014.  
  1015.    - gateways which may without warning turn into "one-way" paths
  1016.      only for such applications as military EMCON.
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023. 5.2  The Beginnings of a Model
  1024.  
  1025.  
  1026.  
  1027.      There  are  several  kinds  of information which the gateway
  1028.  
  1029. should be able to exchange  with  the  GMCC  in  support  of  its
  1030.  
  1031. Monitoring and Control activities.  Among them are:
  1032.  
  1033.    Administrative Information
  1034.  
  1035.      This  is  information  that  identifies the gateway uniquely
  1036.      among all the components of the composite Catenet.  To get a
  1037.      proper picture of the net at any given time,  a  GMCC  would
  1038.      like to be able to discern, among other things,
  1039.  
  1040.        the computer type
  1041.        the memory size
  1042.        the  gateway characterization (conventional, ARPANET, ...)
  1043.        the Administrator's name, address, phone number
  1044.        the program size, release number, release date and time
  1045.  
  1046.  
  1047.                              - 16 -
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.        the addresses of hosts serving as GMCCs
  1055.        the names of connected nets, etc.
  1056.  
  1057.      Information such as this may best be sent unsolicited  to  a
  1058.      special  service  host  when a gateway first comes up on the
  1059.      net after some outage;  interested experimenters could  then
  1060.      retrieve  the information from the host much as is currently
  1061.      done in the ARPANET for retrieving Host status  information.
  1062.  
  1063.    Measurement Information
  1064.  
  1065.      This  information is simply the collective set of statistics
  1066.      accumulated by  the  gateway  during  its  operation.   They
  1067.      reflect the processing performed by the gateway in servicing
  1068.      internet traffic.
  1069.  
  1070.    Monitoring Information
  1071.  
  1072.      This is primarily the "up/down", "up for how long", "planned
  1073.      outages", "recent crash explanation", "net interface reset",
  1074.      etc.  kinds  of  information  which dictates to the GMCC the
  1075.      status  and health of the gateway component.
  1076.  
  1077.    Control Information
  1078.  
  1079.      This is either the information sent by the GMCC to cause the
  1080.      gateway to enter a test, reload, or, restart  mode,  or  the
  1081.      information  sent  by  the gateway to the GMCC to report the
  1082.      results of component testing, to dump some  of  its  memory,
  1083.      etc.
  1084.  
  1085.    Debugging Information
  1086.  
  1087.      Patterned  after  a  general purpose time sharing host's DDT
  1088.      program which has complete control  over  the  execution  of
  1089.      subservient   programs,   the  information  associated  with
  1090.      debugging includes commands to read or write a cell, to  set
  1091.      or  reset  (pseudo)  breakpoints, to search memory, etc. and
  1092.      the responses to these commands.  Two kinds of DDTs may have
  1093.      to be accommodated in any given gateway implementation,  one
  1094.      to  be used by experimenters, say, and one, like XNET, to be
  1095.      used during initial debugging.
  1096.  
  1097.    Descriptive Information
  1098.  
  1099.      This is the information which conveys to the GMCC  the  list
  1100.      of  capabilities  possessed  by  the  gateway; it includes a
  1101.      listing of the kinds of information collected  and  reported
  1102.      by  the  gateway,  a characterization of queue capacities, a
  1103.      list of settable operational parameters,  a  description  of
  1104.      the  histograms  maintained  by  the  gateway, a list of the
  1105.      protocols  supported,  etc.   It  responds  to  the   GMCC's
  1106.      questions  about  "what  can you do", "how much can you do",
  1107.      etc.
  1108.  
  1109.                              - 17 -
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.    Experimental Information
  1117.  
  1118.      This is the information associated with the manipulation  of
  1119.      the  component  by experimenters.  It is in part descriptive
  1120.      (experimenters can ask what experiments are supported,  what
  1121.      parameters   are   allowed,  what  range  on  parameters  is
  1122.      accepted,  etc.),  in  part  control   (they   can   request
  1123.      initiation  of an experiment), and in part measurement (they
  1124.      can  request  operational  statistics  associated  with  the
  1125.      experiment),  but  it  seems reasonable to distinguish it as
  1126.      distinct from these other  operational  aspects  insofar  as
  1127.      possible;   not  all  gateways  which  provide  descriptive,
  1128.      control,  and  measurement  information  will  also  support
  1129.      experimental use.
  1130.  
  1131.    Accounting Information
  1132.  
  1133.      This  information  is  basically  the  set of raw statistics
  1134.      which should be used by an administrator  for  charging  for
  1135.      gateway  utilization.   It is reasonable to distinguish this
  1136.      information from pure measurement information  since  it  is
  1137.      not  necessarily  of  interest  to  a  GMCC  worrying  about
  1138.      functional capabilities, and will likely have to be reported
  1139.      to some special host rather than a general purpose community
  1140.      GMCC.
  1141.  
  1142.    Operational Information
  1143.  
  1144.      This is included here just as a reminder that in addition to
  1145.      manipulating all the information associated with  Monitoring
  1146.      and  Control  activities,  the  gateway  will  also  want to
  1147.      occassionally handle internet  messages,  routing  messages,
  1148.      and  the  rest  of  the  information that is its "reason for
  1149.      being" in the first place!
  1150.  
  1151.  
  1152.  
  1153.      Note that it is possible to consider  that  each  individual
  1154.  
  1155. kind  of  information  is  associated  with  a particular kind of
  1156.  
  1157. "event"  which  occurs  within  a  gateway.   Thus  we  may  have
  1158.  
  1159. Measurement  events,  Monitoring  events, and even Administrative
  1160.  
  1161. events within a functioning gateway.  It is also the role of  the
  1162.  
  1163. gateway  model  to specify how these events are to be recognized,
  1164.  
  1165. recorded, reported, caused, prevented, suspended, continued, etc.
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.                              - 18 -
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.      At least three notions are central  to  our  discusionss  at
  1179.  
  1180. this  point.   First,  we   have the four basic functions that we
  1181.  
  1182. have discussed in detail before:  Performance  Monitoring,  Event
  1183.  
  1184. Recording, Functional Testing, and Component Maintenance.  From a
  1185.  
  1186. suitable,  high level external viewpoint, these are the functions
  1187.  
  1188. that the gateway is involved in.  Second, we have  the  different
  1189.  
  1190. kinds  of  information  which must be recorded by the gateway and
  1191.  
  1192. transported between the gateway and  the  GMCC.   Each  different
  1193.  
  1194. kind  of  information  implies  possibly  a  distinct  formatting
  1195.  
  1196. requirement, distinct collection mechanism, etc.  Finally,  there
  1197.  
  1198. are  the several different mechanisms which must exist inside the
  1199.  
  1200. gateway that can be used  to  collect,  record,  and  report  the
  1201.  
  1202. different  kinds  of  information.   The most apparent mechanisms
  1203.  
  1204. which  exist  in  the  gateway  implementations  are   processes.
  1205.  
  1206. Processes  are the addressable resources which carry on dialogues
  1207.  
  1208. with the GMCC and with each other in some cases.  In addition  to
  1209.  
  1210. the  distinct processes, there are other mechanisms which we will
  1211.  
  1212. just label as  "routines".   Routines  are  best  thought  of  as
  1213.  
  1214. utility  functions  which  may  be  invoked by any of the gateway
  1215.  
  1216. processes  to  help  each  get  its  collecting,  recording,  and
  1217.  
  1218. reporting  done.  An  example  of  a utility routine might be one
  1219.  
  1220. which formats a message  according  to  gateway-to-GMCC  protocol
  1221.  
  1222. specifications  and  adds  it  to a queue of messages to be sent.
  1223.  
  1224. Examples of processes are
  1225.  
  1226.         - the monitoring process which generates the periodic and
  1227.           spontaneous  reports  to  the   GMCC   describing   the
  1228.           operational status of the gateway.
  1229.  
  1230.  
  1231.  
  1232.  
  1233.                              - 19 -
  1234.  
  1235.  
  1236.  
  1237.  
  1238.  
  1239.  
  1240.         - the  measurement  process  which  delivers   cumulative
  1241.           statistics to the GMCC.
  1242.  
  1243.         - the echoing process which returns all received messages
  1244.           to the source from which they originated.
  1245.  
  1246.         - the memory transport process which  moves  portions  of
  1247.           the  gateway  memory  (programs or data) to or from the
  1248.           GMCC.
  1249.  
  1250.         - the terminal  handling  process  which  excanges  ASCII
  1251.           character  streams  between  the gateway's terminal (if
  1252.           one is present) and a specified internetwork source  or
  1253.           destination.
  1254.  
  1255.         - the debugging process.
  1256.  
  1257.         - the message generator process.
  1258.  
  1259.         - etc.
  1260.  
  1261.  
  1262.  
  1263.  
  1264.      It  should  be obvious that processes do not deal one-to-one
  1265.  
  1266. with the kinds  of  information  we  discussed  above.   A  given
  1267.  
  1268. process,  such  as the measurement process, may be used to report
  1269.  
  1270. the  cumulative  statistics  of  each   of   several   kinds   of
  1271.  
  1272. information.  Alternatively, it may take more than one process to
  1273.  
  1274. deal with all the information of any particular kind; for example
  1275.  
  1276. experimental information as discussed above.  And it is certainly
  1277.  
  1278. likely that multiple distinct processes will have a need to share
  1279.  
  1280. a  single  common  routine whenever their processing requirements
  1281.  
  1282. are identical; for example, tracing of  messages  sent  from  the
  1283.  
  1284. GMCC  to  the debugger, to the echoer, or to the terminal handler
  1285.  
  1286. should be done by having each process (conceptually)  invoke  the
  1287.  
  1288. single  trace  mechanism.   It  may  also  be  the  case that two
  1289.  
  1290. processes can be cascaded for the purpose of combining  different
  1291.  
  1292. kinds of information into a single net message.
  1293.  
  1294.  
  1295.                              - 20 -
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302. 5.3  A Sample Modeling
  1303.  
  1304.  
  1305.      We  will  develop  the  gateway  model in terms of a general
  1306.  
  1307. purpose host's implementation, since this allows inclusion of  as
  1308.  
  1309. much   mechanism   as   may   be  useful  for  the  more  general
  1310.  
  1311. implementation.  The figure below shows the principle  components
  1312.  
  1313. of  the  input  handler  for  a  net-dependent  part of a general
  1314.  
  1315. purpose gateway.
  1316.  
  1317.  
  1318. First there is a hardware component which represents the physical
  1319.  
  1320. interface  between  the  network  and  the   gateway   processor.
  1321.  
  1322. Obviously this interface will be different for different nets and
  1323.  
  1324. for  different processors, but as a model component should always
  1325.  
  1326. correspond to some real chunk of hardware in any  implementation.
  1327.  
  1328.  
  1329. Second,  there  is  a  piece  of code which serves to control the
  1330.  
  1331. input portion of the net interface hardware.  Its basic  function
  1332.  
  1333. is  to  effect  the  reading  of  messages  from the network into
  1334.  
  1335. gateway memory. In  the  process,  it  may  perform  intermediate
  1336.  
  1337. parsing, do checksum and consistency processing, etc.
  1338.  
  1339.  
  1340. Third,  there  is  a message queue where unparsed messages reside
  1341.  
  1342. after they have been received by the net  interface  routine  but
  1343.  
  1344. before  they  have  been  processed by any other gateway routine.
  1345.  
  1346. This queue may be implemented in any of  several  ways,  and  may
  1347.  
  1348. only  have  room for a single message in some implementations. (A
  1349.  
  1350. "higher" level routine may perform queue management in this case,
  1351.  
  1352. using a different data structure.)
  1353.  
  1354.  
  1355.  
  1356.  
  1357.                              - 21 -
  1358.  
  1359.  
  1360.  
  1361.  
  1362.  
  1363.  
  1364.  
  1365.  
  1366.  
  1367.  
  1368.  
  1369.  
  1370.  
  1371.  
  1372.  
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.  
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402.  
  1403.  
  1404.  
  1405.  
  1406.  
  1407.  
  1408.  
  1409.  
  1410.  
  1411.  
  1412.  
  1413.  
  1414.  
  1415.  
  1416.  
  1417.  
  1418.  
  1419.                              - 22 -
  1420.  
  1421.  
  1422.  
  1423.  
  1424.  
  1425.  
  1426. Fourth, there is a second routine depicted whose  job  it  is  to
  1427.  
  1428. parse  the  received  messages  one-by-one  and  distribute  them
  1429.  
  1430. individually to new message queues based on the contents of their
  1431.  
  1432. local network header.
  1433.  
  1434.  
  1435. Finally, there are several model components (including both  data
  1436.  
  1437. structures  and  routines) which are not pictured, but still must
  1438.  
  1439. be modelled; a subsequent and more complete modelling effort will
  1440.  
  1441. certainly include them. These are data   structures  like  buffer
  1442.  
  1443. pools and routines like buffer managers, etc.
  1444.  
  1445.  
  1446.  
  1447.      Associated with these model components are a large number of
  1448.  
  1449. parameters,  both  static  and  operational. These are the things
  1450.  
  1451. we've been calling "events".  In the following we give a sampling
  1452.  
  1453. of the events  of  interest  for  each  of  the  event  types  we
  1454.  
  1455. identified  before.   The  sampling  is  not  complete, but it is
  1456.  
  1457. representative of the kinds of information we might be interested
  1458.  
  1459. in  for  purposes  of  Monitoring  and  Control  in  the  gateway
  1460.  
  1461. modelling.   Of  course,  not  all  of  the  events  are of equal
  1462.  
  1463. interest or value;  as modelers, we should attempt to identify as
  1464.  
  1465. many as we can, and leave  to  the  individual  implementers  the
  1466.  
  1467. selection  of  which  events  they really want to record, report,
  1468.  
  1469. etc.
  1470.  
  1471.  
  1472. Events of Interest:
  1473.  
  1474.    Administrative -
  1475.  
  1476.         the name and manufacturer of the hardware interface
  1477.  
  1478.  
  1479.  
  1480.  
  1481.                              - 23 -
  1482.  
  1483.  
  1484.  
  1485.  
  1486.  
  1487.  
  1488.    Measurement -
  1489.  
  1490.         a histogram of log[base 2] message sizes
  1491.         message counts for each distinct local header type
  1492.  
  1493.  
  1494.    Monitoring -
  1495.  
  1496.         cumulative uptime
  1497.         number of interface errors
  1498.  
  1499.  
  1500.    Control -
  1501.  
  1502.         reset counters
  1503.         place a message on the input queue
  1504.  
  1505.  
  1506.    Debugging -
  1507.  
  1508.         read the hardware status register
  1509.  
  1510.  
  1511.    Descriptive -
  1512.  
  1513.         Fan out for local headers
  1514.         queue size
  1515.         maximum message size
  1516.  
  1517.  
  1518.    Experimental -
  1519.  
  1520.         discard every second message at the interface
  1521.  
  1522.  
  1523.    Accounting -
  1524.  
  1525.         total bits received at the interface
  1526.  
  1527.  
  1528.  
  1529.  
  1530.  
  1531.  
  1532.  
  1533. 5.4  Continuing the Sample Modeling
  1534.  
  1535.  
  1536.      In this section we  continue  the  sample  model  introduced
  1537.  
  1538. above  by showing how certain of the data paths might be extended
  1539.  
  1540. to account for subsequent message processing.  It should be  easy
  1541.  
  1542.  
  1543.                              - 24 -
  1544.  
  1545.  
  1546.  
  1547.  
  1548.  
  1549.  
  1550. to  identify  the  events  of  interest in this extension given a
  1551.  
  1552. little thought.  Subsequent attempts at modelling will  enumerate
  1553.  
  1554. these   in   detail.    Note  that  there  are  probably  several
  1555.  
  1556. alternative ways of  depicting  these  later  stages  of  message
  1557.  
  1558. processing;  this fact is compounded by the fact that this is the
  1559.  
  1560. point      in      message       processing       where       the
  1561.  
  1562. net-dependent/net-independent  boundary  may be crossed.  Further
  1563.  
  1564. discussion of alternatives to this part of the model is postponed
  1565.  
  1566. to the section entitled "Issues".
  1567.  
  1568.  
  1569.  
  1570.      Figure 2 shows the extension to the model.  It begins  where
  1571.  
  1572. the  previous figure left off.  First, note that at this point we
  1573.  
  1574. have separated the various types of messages arriving at the  net
  1575.  
  1576. interface into unique queues according to indicators in the local
  1577.  
  1578. header.  For this figure we will follow only a single path -- the
  1579.  
  1580. one followed by internet messages which carry the normal internet
  1581.  
  1582. traffic.   These internet packets are removed from their queue by
  1583.  
  1584. a routine which separates them again, this time according to  the
  1585.  
  1586. version  bit,  into a queue of messages which employ the previous
  1587.  
  1588. internet formatting conventions and a  queue  of  messages  which
  1589.  
  1590. employ the current conventions.
  1591.  
  1592.  
  1593. From  this latter queue, the messages are sent to another routine
  1594.  
  1595. whose job is to initiate the option processing.  In Figure 2,  we
  1596.  
  1597. have  represented  the  options  as  subroutines  without further
  1598.  
  1599. elaboration; subsequent versions of the model should provide  the
  1600.  
  1601. elaboration.
  1602.  
  1603.  
  1604.  
  1605.                              - 25 -
  1606.  
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624.  
  1625.  
  1626.  
  1627.  
  1628.  
  1629.  
  1630.  
  1631.  
  1632.  
  1633.  
  1634.  
  1635.  
  1636.  
  1637.  
  1638.  
  1639.  
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.  
  1655.  
  1656.  
  1657.  
  1658.  
  1659.  
  1660.  
  1661.  
  1662.  
  1663.  
  1664.  
  1665.  
  1666.  
  1667.                              - 26 -
  1668.  
  1669.  
  1670.  
  1671.  
  1672.  
  1673.  
  1674. Finally,  after  option  processing,  the messsages are separated
  1675.  
  1676. again into individual queues  according  to  the  values  in  the
  1677.  
  1678. protocol   field.   Here,  separate  queues  may  be  formed  for
  1679.  
  1680. unrecognized protocols, previous and  current  versions  of  TCP,
  1681.  
  1682. gateway  routing  messages,  and  eventually  the  Monitoring and
  1683.  
  1684. Control messages, the Datagram Protocol, the Real-Time  Protocol,
  1685.  
  1686. etc.
  1687.  
  1688.  
  1689.      As  stated,  we  will  not  elaborate  here on the events of
  1690.  
  1691. interest for this part of the model; some should be obvious.
  1692.  
  1693.  
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.  
  1722.  
  1723.  
  1724.  
  1725.  
  1726.  
  1727.  
  1728.  
  1729.                              - 27 -
  1730.  
  1731.  
  1732.  
  1733.  
  1734.  
  1735.  
  1736. 5.5  Unresolved Issues
  1737.  
  1738.  
  1739.      In this section we want to address a number of issues  which
  1740.  
  1741. are  not  yet resolved in the modelling of the gateway component.
  1742.  
  1743. Their resolution will probably depend on prolonged discussions in
  1744.  
  1745. certain cases, on snap decisions in  others;   possibly  in  some
  1746.  
  1747. cases  a  satisfactory  resolution  will  not  be  possible,  and
  1748.  
  1749. whatever alternative solutions are proposed will all have  to  be
  1750.  
  1751. included in a generalized modelling to make sure the modelling is
  1752.  
  1753. comprehensive enough.
  1754.  
  1755.      At any rate, the topics which need further investigation are
  1756.  
  1757. presented below.
  1758.  
  1759.  
  1760.  
  1761.  
  1762.  
  1763. 5.5.1  Are the Event Types Correct
  1764.  
  1765.  
  1766.      First  there  needs  to  be  some general agreement that the
  1767.  
  1768. event types (information types) we have identified are sufficient
  1769.  
  1770. for modelling purposes.  It is probably the case  that  they  are
  1771.  
  1772. correct   enough  for  a  beginning,  and  that  no  particularly
  1773.  
  1774. disruptive perturbation of the model would be caused  if  another
  1775.  
  1776. event  type  had  to someday be accommodated or an existing event
  1777.  
  1778. type had to  be  deleted.   However,  the  omission  of  an  XNET
  1779.  
  1780. information   type   (not   to  be  confused  with  the  distinct
  1781.  
  1782. "debugging" type) may have to be remedied before too long.
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789.  
  1790.  
  1791.                              - 28 -
  1792.  
  1793.  
  1794.  
  1795.  
  1796.  
  1797.  
  1798. 5.5.2  What Information Should be Communicated to the GMCC
  1799.  
  1800.  
  1801.      Here there is a lot of room for varying opinion.   The  next
  1802.  
  1803. cut at the model will try to identify as many potential events of
  1804.  
  1805. interest as possible.  Obviously, not all these events will be of
  1806.  
  1807. interest  to  all  implementers;   that's  why the Monitoring and
  1808.  
  1809. Control mechanisms  must  be  sure  to  allow  for  only  partial
  1810.  
  1811. participation  on  the  part  of  any  particular implementation.
  1812.  
  1813. However, it may also be the case that we omit some event that  is
  1814.  
  1815. of  particular  interest  to  some  gateway  implementer,  or the
  1816.  
  1817. information which we choose to record  about  the  event  is  not
  1818.  
  1819. quite   what   is  needed  for  some  implementer's  needs.   Our
  1820.  
  1821. collection mechanism  must  be  flexible  enough  to  accommodate
  1822.  
  1823. extensions at any time.
  1824.  
  1825.      Here the real issue may be how to control, administratively,
  1826.  
  1827. the  selection  of  events  of  interest  so that all parties are
  1828.  
  1829. satisfied with the set selected.
  1830.  
  1831.  
  1832.  
  1833. 5.5.3  How Should Information be Communicated to the GMCC
  1834.  
  1835.  
  1836.      We are  of  the  opinion  that  in  most  cases,  the  basic
  1837.  
  1838. gateway-to-GMCC   communication   facility   should  be  datagram
  1839.  
  1840. oriented on the basis that (1) connection  overhead  may  be  too
  1841.  
  1842. expensive  for  certain gateway implementations, that (2) no flow
  1843.  
  1844. control is  probably  needed  since  the  gateways  will  not  be
  1845.  
  1846. generating  data  too  frequently  and since GMCCs will generally
  1847.  
  1848. have substantially greater storage  and  processing  capabilities
  1849.  
  1850. than will the gateways, and that (3) a practical reporting scheme
  1851.  
  1852.  
  1853.                              - 29 -
  1854.  
  1855.  
  1856.  
  1857.  
  1858.  
  1859.  
  1860. can  probably  be  developed  in  which  lost  messages  will not
  1861.  
  1862. necessarily represent lost information, merely  delayed  delivery
  1863.  
  1864. of  information,  since  the  contents  of  lost  messages can be
  1865.  
  1866. inferred from later messages, (this is the  case  for  cumulative
  1867.  
  1868. statistics for example);  on the other hand, the datagrams should
  1869.  
  1870. carry  sequencing information, and will of course employ standard
  1871.  
  1872. Internet Headers.
  1873.  
  1874.      Datagram service will be  satisfactory  in  most  cases,  we
  1875.  
  1876. hope.   In certain instances, however, reliable transmissions may
  1877.  
  1878. be extremely important;  for  these  instances,  some  additional
  1879.  
  1880. capability  may  have  to be added.  As yet, we have no real feel
  1881.  
  1882. for the capabilities required; thus this is still an open  issue.
  1883.  
  1884. Also  at  issue  is  the decision as to whether internet messages
  1885.  
  1886. directed at the various gateway  processes  should  all  carry  a
  1887.  
  1888. single  protocol  designator,  or  whether each different message
  1889.  
  1890. type should command a distinct designator.  It is not  yet  clear
  1891.  
  1892. whether  minimal  gateway implementations would find it easier to
  1893.  
  1894. process messages formatted in one way vs. the other,  or  whether
  1895.  
  1896. it  is  too  wasteful of the Internet Header's protocol field, or
  1897.  
  1898. whether it is easier one way or the other  to subsequently add or
  1899.  
  1900. delete new message formats.
  1901.  
  1902.      Beyond these basic  issues,  there  is  also  the  issue  of
  1903.  
  1904. message  formats  and  message content.  Two alternatives present
  1905.  
  1906. themselves as regards event  reporting.   We  assume  that  event
  1907.  
  1908. counters  can be maintained in 16-bit words,  say.  We can insist
  1909.  
  1910. that messages contain a fixed  number  of  counters  in  a  fixed
  1911.  
  1912. order,  and  thus  eliminate  the  need  to  transmit descriptive
  1913.  
  1914.  
  1915.                              - 30 -
  1916.  
  1917.  
  1918.  
  1919.  
  1920.  
  1921.  
  1922. information with each reporting message.  Or, we  can  allow  for
  1923.  
  1924. every  counter  to be accompanied by another word which names the
  1925.  
  1926. counter.  Tradeoffs  between  the  two  strategies  are  not  yet
  1927.  
  1928. properly understood.
  1929.  
  1930.  
  1931.  
  1932. 5.5.4  Addressing Processes from Outside the Gateway
  1933.  
  1934.  
  1935.      Each  of the gateway processes responsible for some activity
  1936.  
  1937. of Monitoring and Control has a unique identity, or name,  within
  1938.  
  1939. the  Catenet.   But  because  the gateway is attached to multiple
  1940.  
  1941. nets, it is possible for each process to have  multiple  distinct
  1942.  
  1943. addresses.   We  can assume that one reasonable modelling for the
  1944.  
  1945. net-dependent  input  handler  requires  the  input  handler   to
  1946.  
  1947. recognize  at  the  net  interface  all the messages addressed to
  1948.  
  1949. processes which share its own net (and host)  address.   This  is
  1950.  
  1951. the  case  for example in a general purpose implementation of the
  1952.  
  1953. gateway, since the general purpose input handler doesn't normally
  1954.  
  1955. receive messages for processes  that  don't  share  its  own  net
  1956.  
  1957. address.  It probably should not be the responsibility of a given
  1958.  
  1959. net-dependent input handler to be aware that it is playing a role
  1960.  
  1961. in  a  gateway  implementation,  and  thus to be cognizant of the
  1962.  
  1963. alternative internet addresses of the gateway processes it thinks
  1964.  
  1965. of as its own;  i.e. the net-dependent code should  not  have  to
  1966.  
  1967. know  what other nets the gateway is connected to.  Therefore, if
  1968.  
  1969. a message arrives at one net interface that specifies a  resource
  1970.  
  1971. (process)  whose  net address is different from that of the input
  1972.  
  1973. handler, then the message  should  simply  be  handed  off  to  a
  1974.  
  1975.  
  1976.  
  1977.                              - 31 -
  1978.  
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984. special  process  which can effect the proper disposition for the
  1985.  
  1986. message without further involvement of the input handler.
  1987.  
  1988.      Figure 3 depicts this arrangement.
  1989.  
  1990.  
  1991. Here, each network has its own interface to a common copy of  the
  1992.  
  1993. gateway  process,  so  that  it  can communicate with it directly
  1994.  
  1995. whenever a message arrives which addresses the  process  via  the
  1996.  
  1997. appropriate  net.   However,  when  a  message  is received for a
  1998.  
  1999. destination not known to the input handler, the message is simply
  2000.  
  2001. handed to the special process, which in this figure  is  referred
  2002.  
  2003. to  as  the "Postman".  Note that the Postman can effect delivery
  2004.  
  2005. to the processes  via  its  own  interface,  so  that  successful
  2006.  
  2007. delivery  does  not  depend  on  the  route taken by the message.
  2008.  
  2009. (Note that the model might want to specify that  the  Postman  be
  2010.  
  2011. able  to  add  messages  to the input queues of the net-dependent
  2012.  
  2013. input handlers as a means for effecting  delivery  in  a  uniform
  2014.  
  2015. way.)    The   Postman  here  also  has  the  responsibility  for
  2016.  
  2017. performing the tasks associated with the routing of  messages  to
  2018.  
  2019. distant  locations.  That is, messages input at the gateway which
  2020.  
  2021. are only passing through should be routed by the general  gateway
  2022.  
  2023. routing  algorithms;  these can be implemented by the Postman, or
  2024.  
  2025. by some other process to which the Postman interfaces.
  2026.  
  2027.  
  2028.      There  is,   of   course,   another   way   to   model   the
  2029.  
  2030. net-dependent/net-independent  boundary.   Figure  4  shows  this
  2031.  
  2032. other way.
  2033.  
  2034.  
  2035.  
  2036.  
  2037.  
  2038.  
  2039.                              - 32 -
  2040.  
  2041.  
  2042.  
  2043.  
  2044.  
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.  
  2051.  
  2052.  
  2053.  
  2054.  
  2055.  
  2056.  
  2057.  
  2058.  
  2059.  
  2060.  
  2061.  
  2062.  
  2063.  
  2064.  
  2065.  
  2066.  
  2067.  
  2068.  
  2069.  
  2070.  
  2071.  
  2072.  
  2073.  
  2074.  
  2075.  
  2076.  
  2077.  
  2078.  
  2079.  
  2080.  
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086.  
  2087.  
  2088.  
  2089.  
  2090.  
  2091.  
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.                              - 33 -
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  
  2110.  
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116.  
  2117.  
  2118.  
  2119.  
  2120.  
  2121.  
  2122.  
  2123.  
  2124.  
  2125.  
  2126.  
  2127.  
  2128.  
  2129.  
  2130.  
  2131.  
  2132.  
  2133.  
  2134.  
  2135.  
  2136.  
  2137.  
  2138.  
  2139.  
  2140.  
  2141.  
  2142.  
  2143.  
  2144.  
  2145.  
  2146.  
  2147.  
  2148.  
  2149.  
  2150.  
  2151.  
  2152.  
  2153.  
  2154.  
  2155.  
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.  
  2162.  
  2163.                              - 34 -
  2164.  
  2165.  
  2166.  
  2167.  
  2168.  
  2169.  
  2170. Basically the difference here is  that  the  net-dependent  input
  2171.  
  2172. handlers   no  longer  have  their  own interfaces to the gateway
  2173.  
  2174. processes.  Instead, they simply pass all  received  messages  to
  2175.  
  2176. the internal Postman and allow it to effect delivery.  This is an
  2177.  
  2178. acceptable   approach   even  if  in  the  general  purpose  host
  2179.  
  2180. implementation the net-dependent input  handlers  still  have  to
  2181.  
  2182. worry  about  interfacing  processes  which aren't using Internet
  2183.  
  2184. Headers.  However, in this model, the Postman  and  the  affected
  2185.  
  2186. processes  must  be  sure  to not lose the destination address by
  2187.  
  2188. which they were reached, lest they not be able to  use  the  same
  2189.  
  2190. address  for the source in the header of their response messages.
  2191.  
  2192. (We are somehow assuming that the recipient of  a  message  whose
  2193.  
  2194. source  address  does not match the destination address which was
  2195.  
  2196. used for  transmission,  will  not  be  anxious  to  perform  the
  2197.  
  2198. required reverse lookup to map the source address into a resource
  2199.  
  2200. name.  If we were to model this capability, it is not clear where
  2201.  
  2202. the processing for this lookup would be performed.)
  2203.  
  2204.      At issue here then is just exactly which of these two models
  2205.  
  2206. should be assumed for "the" model implementation.
  2207.  
  2208.  
  2209.  
  2210. 5.5.5  Addressing Processes from Inside the Gateway
  2211.  
  2212.  
  2213.      Here  is  an  issue  which  has certainly been touched on in
  2214.  
  2215. other internet meetings; it is basically a discussion of the need
  2216.  
  2217. for  high  level  protocols  to  carry   their   own   addressing
  2218.  
  2219. information.
  2220.  
  2221.  
  2222.  
  2223.  
  2224.  
  2225.                              - 35 -
  2226.  
  2227.  
  2228.  
  2229.  
  2230.  
  2231.  
  2232.      Gateway  processes  will  have occassion to communicate with
  2233.  
  2234. other  processes  in  support  of  gateway  routing  or   gateway
  2235.  
  2236. Monitoring  and  Control.   Traffic between two gateway processes
  2237.  
  2238. may  be  intrahost,  intranet,  or  internet,  depending  on  the
  2239.  
  2240. relative  locations  of the source and destination processes.  At
  2241.  
  2242. issue is whether in all cases a single  data  transport  protocol
  2243.  
  2244. should  be  used  to  effect  message  delivery.  We have already
  2245.  
  2246. "concluded" in the discussion of  event  reporting  that  gateway
  2247.  
  2248. Monitoring and Control messages should employ Internet Headers in
  2249.  
  2250. all  cases.  And it would certainly seem on the surface that this
  2251.  
  2252. scheme is ideal.  However, in certain cases this may not be true.
  2253.  
  2254.      We are struck by an inconsistency which arises when  we  try
  2255.  
  2256. to   attain   symmetry   in   modelling  the  gateway's  internal
  2257.  
  2258. organization.  At one point in the model, we have a process whose
  2259.  
  2260. job it is to route messages through a given local net.   Whenever                                            _________
  2261.  
  2262. it  is  handed an internet message, it analyzes the header of the
  2263.  
  2264. message in order to determine the desired destination, and  hence
  2265.  
  2266. what local address to specify in the net-dependent data transport
  2267.  
  2268. protocol.
  2269.  
  2270.      The   inconsistency   is  found  because  we  don't  have  a
  2271.  
  2272. corresponding process whose job it is  to  analyze  higher  level
  2273.  
  2274. protocol  headers in order to route messages through the internet                                                         ________
  2275.  
  2276. (using the internet data transport protocol).  This means  either
  2277.  
  2278. that each of our Monitoring and Control processes must make up an
  2279.  
  2280. Internet  Header itself, or that, if some common process is to do
  2281.  
  2282. it, the common process must be handed the addressing  information
  2283.  
  2284. by  some  "out-of-band"  path  (such  as  a shared memory control
  2285.  
  2286.  
  2287.                              - 36 -
  2288.  
  2289.  
  2290.  
  2291.  
  2292.  
  2293.  
  2294. block).  This may not  be  easy  to  provide  for  a  distributed
  2295.  
  2296. gateway implementation, say.
  2297.  
  2298.      The  real issue here, of course, is inspired by the problems
  2299.  
  2300. we see for, say, TCP users,  if  the  Internet  and  TCP  Headers
  2301.  
  2302. recently  proposed  are adopted for use in the Catenet.  The fact
  2303.  
  2304. that higher level protocols are being designed which don't  carry
  2305.  
  2306. their  own addressing information means that these protocols will
  2307.  
  2308. be practically unusable in any instance where the data  transport
  2309.  
  2310. protocol  used  to  carry the messages is different from the data
  2311.  
  2312. transport protocol embodied in the  Internet  Header.   TCP,  for
  2313.  
  2314. example, would probably not be usable without Internet Headers in
  2315.  
  2316. the ARPANET, since port addressing would be impossible.
  2317.  
  2318.      Although  it  is  probably  the case that we will not opt to
  2319.  
  2320. include addressing information in the messages  which  adhere  to
  2321.  
  2322. our  higher level Monitoring and Control protocols, and will thus
  2323.  
  2324. in fact choose to use the Internet Header to provide  addressing,
  2325.  
  2326. we  nevertheless  wonder  if  it  is wise to arbitrarily restrict
  2327.  
  2328. these  protocols  to  use  with  only  a  single  data  transport
  2329.  
  2330. protocol.
  2331.  
  2332.  
  2333.  
  2334.  
  2335.  
  2336.  
  2337.  
  2338.  
  2339.  
  2340.  
  2341.  
  2342.  
  2343.  
  2344.  
  2345.  
  2346.  
  2347.  
  2348.  
  2349.                              - 37 -
  2350.